package com.itrencai.d7_map;

import javafx.scene.effect.SepiaTone;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

//map集合案例：统计投票人数
//某个班级80名学生，组织秋游，四个景点ABCD每个学生选择一个，统计哪个景点想去人数最多
public class MapDemotoupiao1dan {
    public static void main(String[] args) {
        //1.把80个学生选择的数据拿进来
        String[] selects={"A","B","C","D"};//定义一个数组存放可供选择的四个景点
        StringBuilder sb=new StringBuilder();//stringbuilder支持链式编程
        Random r=new Random();//随机生成选择结果
        for (int i = 0; i <80 ; i++) {
            sb.append(selects[r.nextInt(selects.length)]);//拼接80个数组索引（里面是在数组长度A，B,C,D范围内随机生成的选线）
        }
        System.out.println(sb);
        //2.定义一个map集合记录最终统计的结果：A=30 B=20 D=10 键是景点，值是选择的数量
        Map<Character,Integer> infos=new HashMap<>();//{}
        //3.遍历80个学生选择的数据
        for (int i = 0; i <sb.length() ; i++) {
            //4.提取当前选择的字符
            char ch=sb.charAt(i);//sb.charat可以返回char在制定索引i的序列值
            //5.判断map集合中是否存在这个键
            if(infos.containsKey(ch)){//判断是否包含某个键即景点
                //让其值+1
                infos.put(ch,infos.get(ch)+1);
            }else{
                //说明此景点第一次被选
                infos.put(ch,1);
            }
        }
        //6.输出map
        System.out.println(infos);

    }
}
